home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
os2
/
pvm34b3.zip
/
pvm34b3
/
pvm3
/
src
/
pvmdabuf.c
< prev
next >
Wrap
C/C++ Source or Header
|
1997-07-22
|
2KB
|
110 lines
static char rcsid[] =
"$Id: pvmdabuf.c,v 1.4 1997/06/25 22:09:20 pvmsrc Exp $";
/*
* PVM version 3.4: Parallel Virtual Machine System
* University of Tennessee, Knoxville TN.
* Oak Ridge National Laboratory, Oak Ridge TN.
* Emory University, Atlanta GA.
* Authors: J. J. Dongarra, G. E. Fagg, M. Fischer
* G. A. Geist, J. A. Kohl, R. J. Manchek, P. Mucci,
* P. M. Papadopoulos, S. L. Scott, and V. S. Sunderam
* (C) 1997 All Rights Reserved
*
* NOTICE
*
* Permission to use, copy, modify, and distribute this software and
* its documentation for any purpose and without fee is hereby granted
* provided that the above copyright notice appear in all copies and
* that both the copyright notice and this permission notice appear in
* supporting documentation.
*
* Neither the Institutions (Emory University, Oak Ridge National
* Laboratory, and University of Tennessee) nor the Authors make any
* representations about the suitability of this software for any
* purpose. This software is provided ``as is'' without express or
* implied warranty.
*
* PVM version 3 was funded in part by the U.S. Department of Energy,
* the National Science Foundation and the State of Tennessee.
*/
/*
* pvmdabuf.c
*
* Data buffer manip.
*
$Log: pvmdabuf.c,v $
* Revision 1.4 1997/06/25 22:09:20 pvmsrc
* Markus adds his frigging name to the author list of
* every file he ever looked at...
*
* Revision 1.3 1997/03/06 21:10:17 pvmsrc
* quad align dabufs by adding double q[2] in alignme
*
* Revision 1.2 1997/01/28 19:27:04 pvmsrc
* New Copyright Notice & Authors.
*
* Revision 1.1 1996/09/23 23:44:31 pvmsrc
* Initial revision
*
* Revision 1.2 1994/06/03 20:38:23 manchek
* version 3.3.0
*
* Revision 1.1 1993/08/30 23:26:50 manchek
* Initial revision
*
*/
#include <pvm3.h>
#include "pvmalloc.h"
union alignme {
long l;
char *p;
double d;
double q[2]; /* quad-word alignment */
};
#define RCOFFSET sizeof(union alignme)
/***************
** Private **
** **
***************/
char *
da_new(len)
int len;
{
char *p;
if (p = TALLOC(len + RCOFFSET, char, "data")) {
p += RCOFFSET;
*(int*)(p - sizeof(int)) = 1;
}
return p;
}
void
da_ref(p)
char *p;
{
++*(int*)(p - sizeof(int));
}
void
da_unref(p)
char *p;
{
if (--*(int*)(p - sizeof(int)) < 1)
PVM_FREE(p - RCOFFSET);
}